package com.coustemview.qianfeng.huaqiangbeistore.view;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.widget.TextView;

/**
 * Created by Bob on 2016/7/26.
 */
public class LineTextView extends TextView {
    // 这个方法会在你把这个控件写在xml文件里，实例化控件就会调用这个方法
    // params1 上下文
    // params2 你写在Xml文件里面的所有的属性 都会在这个参数里面
    public LineTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
     // params 上下文。
    // 这个方法会在你调用 new LineTextView（this）；调用这个方法来实例化一个控件
   /* public LineTextView(Context context) {
        super(context);
    }*/
    // 这个方法会在你把这个控件写在Xml文件里面，并且你里面包含一个Style
    public LineTextView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

   /*public LineTextView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
    }*/
    // 画布局调用的方法 我们能在控件上看到的所有的文字和图像都是通过onDraw 这个方法画上去的
    // params canvas 画布 ，我们能看文字和图片都是 画在画布（canvas）上的
    // Paint 画笔 我们能看到文字和图片都是通过画笔画上在canvas上的
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        final int paddingRight = getPaddingRight();
        final int paddingTop = getPaddingTop();
        final int paddingLeft = getPaddingLeft();
        final int paddingBottom = getPaddingBottom();

        // 获取控件的高度  再减去上下内边距
         //int height = getHeight() -paddingTop-paddingBottom;
         int height = getHeight();
        //获取控件的宽度
         //int width = getWidth()-paddingLeft-paddingRight;
         int width = getWidth();
        // 创建画笔 用于 绘制你想要的文字或者图片
         Paint paint = new Paint();
        //params1 X轴开始画的位置
        // params2 Y 轴开始画的位置
        // params3 X轴画的重点
        // params4 Y轴画的终点
        // params5 画笔
        // 在中间画一条线 不考虑边距
       // canvas.drawLine(0,height/2,width,height/2,paint);
        // 在中间画一条线 考虑边距
        canvas.drawLine(paddingLeft,height/2,width-paddingRight,height/2,paint);
        // 画对角线
        //canvas.drawLine(0,0,width,height,paint);
        //canvas.drawLine(0,height,width,0,paint);

        //如何获取View写在Xml文件里面Padding
        // 获取上下左右的padding（内边距）值
        //getPaddingBottom();
        //getPaddingLeft();
        //getPaddingTop();
        //getPaddingRight();

         // onDraw() 用来画你想要的文字或者 图片
        //onMeasure(); 控件测量自身的宽高的方法（并且由父控件调用）
        //onLayout() 是viewGroup特有的一个方法 来摆放子控件的位置的
        // onTouch() 时处理用户触摸这个控件的事件

    }
}
